#ifndef COLOR_H
#define COLOR_H

#include <iostream>
using namespace std;

class Color{

	public:

		Color();
		Color(const int _r, const int _g, const int _b);

		unsigned short int red() const;
		unsigned short int green() const;
		unsigned short int blue() const;

		Color operator + (const Color& c) const;
		void operator += (const Color& c);

		Color operator - (const Color& c) const;
		void operator -= (const Color& c);

		Color operator * (const double& d) const;
		void operator *= (const double& d);

		Color operator / (const double& d) const;
		void operator /= (const double& d);

		friend ostream& operator << (ostream& os, const Color& c);

	private:

		int r;
		int g;
		int b;

};

ostream& operator << (ostream& os, const Color& c);

#define BLACK Color(0,0,0)
#define RED Color(255,0,0)
#define GREEN Color(0,255,0)
#define BLUE Color(0,0,255)
#define CIAN Color(0,255,255)
#define MAGENTA Color(255,0,255)
#define YELLOW Color(255,255,0)
#define WHITE Color(255,255,255)

#endif
